package ModelLag;
import java.util.ArrayList;


/**
 * denne klasse indeholder en liste over ordrer som er blevet faktureret 
 * og kan ligeledes haendtere disse
 */
public class OrdreArkiv
{
    // instance variables - replace the example below with your own
    private ArrayList<Salg> ordreArkiv;
    private static OrdreArkiv instance;


    /**
     * Construktor som initialiserer arraylisten
     */
    private OrdreArkiv()
    {
        ordreArkiv = new ArrayList<Salg>();

    }

    /**
     * singleton
     */
    public static OrdreArkiv getInstance()
    {
        if(instance == null)
        {
            instance = new OrdreArkiv();
        }
        return instance;
    }

    /**
     * metode som tilfoejer et Salg til ArrayListen
     * @param Salg
     */
    public void tilfoejOrdre(Salg s)
    {
        ordreArkiv.add(s);
    }

    /**
     * metode som returnerer ArrayListen ordreArkiv
     * @returns ordreArkiv
     */
    public ArrayList<Salg> getOrdreArkiv()
    {
        return ordreArkiv;
    }

    /**
     * metode som finder og returnerer et salg ud fra et ordreNr
     * @param ordreNr
     * @returns Salg
     */
    public Salg findOrdre(long ordreNr)
    {
        int index = 0;
        int index2 = 0;
        boolean found = false;
        while(index < ordreArkiv.size() && !found)
        {
            Salg s = ordreArkiv.get(index);
            if(s.getOrdreNr() == (ordreNr))
            {
                found = true;
                index2 = index;
            }
            index++;
        }
        return ordreArkiv.get(index2);
    }

    /**
     * metode som tjekker om et salg findes.
     * @param ordreNr
     * @returns true hvis det findes. false hvis ikke
     */
    public boolean check(long ordreNr)
    {
        Salg s = findOrdre(ordreNr);
        if(s != null)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    /**
     * metode som finder en given persons ordrer og returer et array indeholdende disse.
     * @param tlfnr pae den person som ordrer skal findes for
     * @returns ArraList med de ordrer som den person har
     */
    public ArrayList<Salg> getPersonOrders(String tlfnr)
    {
        ArrayList<Salg> personOrdre = new ArrayList<Salg>();
        for(Salg ordre : ordreArkiv)
        {
            if(ordre.getMedarbejder().getTelefonNummer().contains(tlfnr))
            {
                personOrdre.add(ordre);
            }
        }
        return personOrdre;
    }
}
